;DUMP ALL,"TYPE FORM 99999" AS COGO
1.01;JOB NAME HERE
1.02 ;COMMENTS FOLLOWING
1.99TYPE"PROGRAM STARTS AT PART 99"
2.1 TYPE "CLEAR"
2.2 READ J,K
2.3 DO PART 96
2.4 X[L]=10^15,Y[L]=10^15 FOR L=J:1:K
2.5 TYPE J,K IN FORM 2
3.01 TYPE "ALIGNMENT"
3.02 CUR=CUR+1
3.03 READ NUM,NB,PI,NA,PC,NC,PT
3.035 RAD=0,TAN=0,XX=0
3.04 READ RAD
3.05 DO PART 91.2 FOR D=RAD
3.06 RAD=D
3.065 TO STEP 3.13 IF RAD>0
3.07 READ TAN
3.08 DO PART 91.2 FOR D=TAN
3.09 TAN=D
3.095 TO STEP 3.13 IF TAN>0
3.10 READ XX
3.11 DO PART 91.2 FOR D=XX
3.12 XX=D
3.125TYPE"ONE OF RAD,TAN,XX MUST BE GIVEN"IF XX=0
3.126 TO STEP 3.04 IF XX=0
3.13 READ STB
3.14 DO PART 91.2 FOR D=STB
3.15 STB=D
3.16 NCU[CUR]=NUM
3.17 V=NUM,VTC[V]=PC,VI[V]=PI,VCT[V]=PT,VC[V]=NC
3.175 STB=WCT[NCU[CUR-1]] IF STB=-1
3.18 PA=NB,PB=PI
3.181TYPE#,"DO YOU DESIRE STATIONS ON THE CURVE?(YES/NO)"FOR YES=1
3.182 READ ANS FOR NO=0 FOR STN=0
3.185 READ STN IF ANS=1
3.19 DO PART 96,PART 93,PART 94
3.20 DO STEP 3.8 IF TAN<>0
3.21 DO STEP 3.81 IF RAD=0 AND TAN=0
3.22 A=AZ,PA=PI,PB=NA,DBI=DI
3.23 DO PART 93,PART 94
3.24 AD=AZ-A,DEA='AD',DAI=DI
3.25 AD=AD+2*$PI IF AD<0
3.26 TYPE NUM IN FORM 3
3.27 TYPE "CURVE TURNS TO RIGHT" IF AD<$PI
3.28 TYPE "CURVE TURNS TO LEFT" IF AD>$PI
3.29 W=$PI*0.5
3.30 AB=A,AF=AZ,DIR[V]=SGN($PI-AD),AA=A-W*DIR[V],A=AZ-W*DIR[V]
3.32 TYPE #,"CENTER OF CURVE"
3.33 TO STEP 3.6 IF RAD<>00
3.34 N=PC,J=PI,K=NB,D=TAN,DI=DBI
3.35 DO STEP 37.3
3.36 N=PT,K=NA,DI=DAI
3.37 DO STEP 37.3
3.38 N=NC,J=PC,K=PT
3.39 DO PART 12.62
3.40 TYPE #
3.41 DO STEP 57.4 FOR N=PC,PT
3.42 PA=PC,PB=NC
3.43 DO PART 93
3.44 RAD=DI
3.45 DEA=2*$PI-DEA IF DEA>$PI
3.455 DO PART 98 FOR A=DEA
3.46 TYPE RAD,TAN,DEG,MNS,SEC IN FORM 6
3.47 TYPE NB,PC,XX,RAD*DEA IN FORM 7
3.48 WTC[V]=STB+XX,WCT[V]=WTC[V]+RAD*DEA
3.49 TYPE PC,WTC[V] IN FORM 8
3.495 TYPE PT,WCT[V] IN FORM 8
3.4955 DONE IF STN=0
3.496TYPE"STATIONING IS TOO WIDE"IF STN>RAD*DEA
3.49601 DEMAND STN IF STN>RAD*DEA
3.49602 TO STEP 3.496 IF STN>RAD*DEA
3.49605TYPE#," STATION     DIST FROM PC   DEFLECTION ANGLE"
3.4961THT=STN/RAD,J=NC,K=PC,KK=1
3.49615 THET=(STN-(XX-IP(XX/STN)*STN))/RAD
3.49616 DO PART 94 FOR PA=PC FOR PB=PI
3.49617 AZZ=AZ
3.49618 DO PART 93 FOR PA=NB FOR PB=PC
3.49619 ST0=STB+IP(DI/STN)*STN
3.4962 DD=2*RAD*SIN(THET/2),ST0=ST0+STN
3.4963 DO PART 33.4 FOR N=0 FOR D=RAD FOR A=THET
3.4964 DO PART 94 FOR PA=PC FOR PB=0
3.49645 A=$PI+A IF A<0 FOR A=AZ-AZZ
3.4965 DO PART 98
3.4966TYPE ST0,DD,DEG,MNS,SEC IN FORM 17
3.4967 THET=THET+THT
3.4968 TO STEP 3.4962 IF THET<DEA
3.50 DONE
3.60 J=NB,K=PI,M=249,N=248,D=-RAD*SGN(AD-$PI),ATC=AA,ACT=A,DL=D
3.61 DO PART 42.4
3.62 J=PI,M=247,N=246,K=NA,D=DL
3.63 DO PART 42.4
3.64 N=NC,J=249,K=248,L=247,M=246
3.65 DO PART 44.26
3.66 DO STEP 57.4
3.67 TYPE #
3.68 D=RAD,N=PC,J=NC,A=ATC
3.69 DO STEP 34.4,STEP 57.4
3.70 N=PT,A=ACT
3.71 DO STEP 3.69
3.72 PA=PI,PB=PC
3.73 DO PART 93
3.74 TAN=DI,XX=DBI-TAN
3.75 TO PART 3.45
3.80 XX=DI-TAN
3.81 TAN=DI-XX
4.1 TYPE "ANGLE"
4.2 READ J,K,L
4.3 PA=K,PB=J
4.4 DO PART 96,PART 94
4.5 A=AZ,PB=L
4.6 DO PART 94
4.7 A=AZ-A
4.8 A=2*$PI+A IF A<0
4.85 AA=A
4.9 DO PART 98
4.95 TYPE K,J,L,DEG,MNS,SEC IN FORM 4
5.1 TYPE "ANGLE/STORE"
5.2 READ J,K,L,M
5.3 DO PART 4.3
5.4 AN[M]=AA,AD[M]=1
5.5 TYPE M IN FORM 5
6.1 TYPE "ARC/ARC/INTERSECT"
6.2 READ N,J,RJ
6.3 DO PART 91.2 FOR D=RJ
6.4 READ K,RK
6.45 RJ=D,NX=N,N=249
6.5 DO PART 91.2 FOR D=RK
6.55 PA=J,PB=K
6.6 DO STEP 7.5,PART 96,PART 93,PART 94
6.7 RK=D,D=(RJ^2-RK^2+DI^2)/(2*DI)
6.8 DO STEP 37.3
6.85 A=AZ-$PI*0.5,D=RJ,K=249,N=NX
6.90 A=A+2*$PI IF A<0
6.95 TO PART 7.7
7.1 TYPE "ARC/LINE/BEARING"
7.2 DO STEP 8.04,STEP 8.06
7.3 READ K
7.4 DO PART 90
7.5 READ M
7.6 DO PART 96
7.7 TO PART 8.6 IF A=0 OR A=$PI OR A=$PI*2
7.8 DO STEP 12.67,PART 8.16
8.02 TYPE "ARC/LINE/POINTS"
8.04 READ N,J,RAD
8.06 DO PART 91.2 FOR D=RAD
8.07 READ K,L,M
8.08 DO PART 96
8.10 DIF=X[L]-X[K],PA=K,PB=L
8.12 TO STEP 8.6 IF DIF=0
8.14 DO PART 92
8.16 G=-Y[J],F=-X[J],H=G^2+F^2-D^2
8.18 AQ=T^2+1,BQ=2*(T*U+G*T+F),P=U*(U+2*G)+H
8.19 Q=BQ^2-4*AQ*P,AQ=2*AQ
8.195 TYPE "CIRCULAR ARC AND LINE DO NOT CROSS" IF Q<0
8.20 Q=SQRT(Q),EB=(-BQ+Q)/AQ,EC=(-BQ-Q)/AQ
8.22 NB=T*EB+U,NC=T*EC+U
8.24 DB=SQRT((Y[M]-NB)^2+(X[M]-EB)^2),DC=SQRT((Y[M]-NC)^2+(X[M]-EC)^2)
8.26 Y[N]=NB,X[N]=EB IF DB<DC
8.28 Y[N]=NC,X[N]=EC IF DB>DC
8.30 TO STEP 57.4
8.60 DO STEP 8.16
8.62 AQ=1,BQ=2*G,P=H+X[K]*(X[K]+2*F)
8.64 DO STEP 8.19,STEP 8.195,STEP 8.2
8.66 NB=EB,NC=EC,EB=X[K],EC=EB
8.68 TO PART 8.24
9.1 TYPE "AREA"
9.2 F=1,ART=0,ARE=0
9.25 DO PART 87 IF $L>56 IF HEAD=1
9.3 READ NP[F]
9.4 F=F+1
9.5 TO STEP 9.25 IF NOT(NP[F-1]=Z OR NP[F-1]=R)
9.6 P=F-3
9.7 TO STEP 96.3 IF NP[F-2]<>NP[1]
9.8 ART=ART+(Y[NP[F]]+Y[NP[F+1]])*(X[NP[F]]-X[NP[F+1]])*.5 FOR F=1:1:P
9.85 ARY=ART/9,ARZ=ARY/4840
9.9 TYPE ART,ARY,ARZ IN FORM 9
9.95 ARE=ART
10.1 TYPE "AREA/BEARINGS"
10.2 DO PART 9.2
10.3 TYPE "FIRST  SECOND  DISTANCE       BEARING"
10.4 TYPE " STN    STN "
10.5 F=1
10.6 PA=NP[F],PB=NP[F+1]
10.7 DO PART 94,PART 93
10.8 DO PART 30.45 FOR A=AZ
10.83 DO PART 87 IF $L>62
10.85PRINT PA,PB,DI IN FORM 10
10.86TYPE DEG,MNS,SEC IN FORM 80+QDR
10.9 F=F+1
10.95 TO STEP 10.6 IF F<>P+1
11.1 TYPE"PRINT/ANGLES"
11.2 READ J,K
11.3 DO PART 96
11.4 TYPE"ANGLE NO.      DEG    MIN    SEC"
11.5 DO PART 11.6 FOR L=J:1:K
11.55 DONE
11.6 TYPE L,"UNDEFINED" IN FORM 97 IF AD[L]=0
11.61 DONE IF AD[L]=0
11.65DO PART 98 FOR A=AN[L]
11.7 TYPE L, DEG,MNS,SEC IN FORM 98
11.8 DO PART 87 IF $L>64 IF HEAD=1
12.1 TYPE "BEARING/INTERSECT"
12.2 DEMAND N,J
12.3 DO PART 90
12.4 AA=A
12.5 READ K
12.6 DO PART 90,PART 96
12.62 ANA=FP(AA/$PI),ANB=FP(A/$PI)
12.63 TO STEP 12.8 IF (ANA=0 OR ANA=0.5 OR ANB=0 OR ANB=0.5)
12.64 TA=COS(AA)/SIN(AA),UA=Y[J]-(X[J]*TA)
12.67 T=COS(A)/SIN(A),U=Y[K]-(X[K]*T)
12.68 TO STEP 44.98 IF TA=T
12.69 DO STEP 44.42
12.70 BBB=2
12.71 TO PART 57.4
12.80 BBB=1,X[N]=X[J],Y[N]=Y[K] IF ANA=0 AND ANB=0.5
12.82 BBB=1,X[N]=X[K],Y[N]=Y[J] IF ANA=0.5 AND ANB=0
12.84 TO STEP 12.7 IF BBB=1
12.88 DO STEP 12.67 IF ANA=0 OR ANA=0.5
12.90 DO STEP 12.64 IF ANB=0 OR ANB=0.5
12.91 X[N]=X[J],Y[N]=T*X[J]+U IF ANA=0
12.92 Y[N]=Y[J],X[N]=(Y[J]-U)/T IF ANA=0.5
12.93 Y[N]=Y[K],X[N]=(Y[K]-UA)/TA IF ANB=0.5
12.94 Y[N]=TA*X[K]+UA,X[N]=X[K] IF ANB=0
12.95 TO STEP 12.70
13.1 TYPE "OFFSET/ALIGN/NORTHING"
13.2 READ NUM,N,Y,M
13.3 DO PART 91,PART 96
13.4 X[249]=0,Y[249]=Y,A=$PI/2
13.5 PA=VC[NUM],PB=VTC[NUM],NA=N
13.6 DO PART 93
13.7 N=248,J=PA,RAD=DI,DA=D,D=RAD,K=249
13.8 TO PART 8.6 IF CMD=14
13.81 TO STEP 7.8
13.85 N=NA,J=248,K=PA,DI=RAD,D=DA*DIR[NUM]
13.9 TO PART 37.3
14.1 TYPE "OFFSET/ALIGN/EASTING"
14.2 READ NUM,N,X,M
14.3 DO PART 91,PART 96
14.4 X[249]=X,Y[249]=0,A=0
14.5 TO STEP 13.5
16.1 TYPE "CO-ORD/OFFSET"
16.2 READ NUM,N,ST
16.3 DO PART 91.2 FOR D=ST
16.32 ST=D
16.34 DO PART 91 IF CMD=COF
16.35 DO PART 96
16.36 D=0 IF CMD=CAL
16.37 TO STEP 16.6 IF ST<=WTC[NUM]
16.38 TO STEP 16.8 IF ST>=WCT[NUM]
16.40 PA=VC[NUM],PB=VTC[NUM]
16.41 DO PART 93,PART 94
16.42 A=DIR[NUM]*(ST-WTC[NUM])/DI,D=DI-DIR[NUM]*D,J=PA
16.43 TO PART 33.6
16.60 J=VTC[NUM],K=VI[NUM],DA=D,D=ST-WTC[NUM]
16.61 NA=N,N=249 IF CMD=COF
16.62 DO STEP 22.3,PART 93,STEP 37.3
16.63 TO STEP 57.4 IF CMD=CAL
16.64 DO STEP 42.4,STEP 42.5 FOR D=DA
16.65 N=NA,D='DA',J=249
16.66 TO PART 33.4
16.80 J=VCT[NUM],K=VI[NUM],DA=D,D=WCT[NUM]-ST
16.81 DO STEP 16.61,STEP 16.62
16.83 TO STEP 57.4 IF CMD=CAL
16.84 DO STEP 42.4,STEP 42.5 FOR D=-DA
16.85 TO PART 16.65
17.1 TYPE "CO-ORD/ALIGN"
17.2 TO PART 16.2
18.1 TYPE "CROSS TANGENT"
18.2 TO PART 27.2
20.1 TYPE "DEFINE/CURVE"
20.2 READ NUM,PC,STC,PI,PT,STT,NC,SN
20.3 DO STEP 3.17
20.4 WTC[V]=STC,WCT[V]=STT,DIR[V]=SN
20.5 DO PART 96
20.6 TYPE "PARAMETERS FOR CURVE ARE STORED"
22.1 TYPE "DISTANCE"
22.2 READ J,K
22.3 PA=J,PB=K
22.4 DO PART 96,PART 93
22.5 TYPE J,K,DI IN FORM 22
23.1 TYPE "DIVIDE/LINE"
23.2 READ J,K,L
23.25 DO PART 96
23.3 PA=J,PB=K
23.4 DO PART 93
23.5 TYPE K,J,K-J,L IN FORM 23 IF L>K-J
23.6 YY=(Y[K]-Y[J])/L,XX=(X[K]-X[J])/L,N=J
23.7 TYPE DI/L IN FORM 34
23.8 Y[H+1]=Y[H]+YY,X[H+1]=X[H]+XX FOR H=J:1:J+L-2
23.85 DO PART 87 IF $L>61 IF HEAD=1
23.9 DO STEP 57.4
23.92 N=N+1
23.95 TO STEP 23.9 IF N<J+L
23.96 DO STEP 23.9 FOR N=K
25.1 TYPE "PRINT/COORDS"
25.2 READ J,K
25.3 DO PART 96
25.4 TYPE "PT.NO.          N            E"
25.42 L=J
25.425 TYPE L,"UNDEFINED" IN FORM 97 IF X[L]=10^15
25.426 TO STEP 25.44 IF X[L]=10^15
25.43 TYPE L,Y[L],X[L] IN FORM 25
25.44 DO PART 87 IF $L>64 IF HEAD=1
25.45 DONE IF CMD=PSP
25.5 L=L+1
25.6 TO PART 25.425IF L<K+1
27.1 TYPE "EXTERNAL TANGENT"
27.2 READ M,J,RJ
27.3 DO PART 91.2 FOR D=RJ
27.4 RJ=D
27.45 READ N,K,RK
27.5 DO PART 91.2 FOR D=RK
27.6 RK=D,PA=J,PB=K
27.7 READ SN
27.71 DR=RJ-RK IF CMD=27
27.72 DR=RJ+RK IF CMD=18
27.73 DO PART 96,PART 93,PART 94
27.735 TO STEP 27.9001 IF DR=0 AND CMD=27
27.74 DA=SQRT(DI^2-DR^2),A=ATN(DA,DR)
27.75 A=AZ-A*SGN(SN)*SGN(DR)
27.76 A=A+2*$PI IF A<0
27.765 A=A-2*$PI IF A>2*$PI
27.77 NA=N,N=M,D=RJ
27.78 DO PART 34.4
27.79 J=K,N=NA,D=RK
27.80 A=A-$PI IF CMD=18
27.81 DO STEP 33.8 IF CMD=18
27.815 DO PART 34.4
27.82 J=M,K=N,PA=M,PB=N
27.83 DO PART 93,PART 94,PART 30.45
27.9 DONE
27.9001 T=RJ,L=N
27.901 AA=AZ
27.9015 AZ=AZ-$PI IF AZ>$PI
27.902A='AZ-$PI/2'
27.903 SN1=-SN*SGN((Y[J]-Y[K])/(X[J]-X[K])) IF X[J]<>X[K]
27.904 SN1=SN IF X[J]=X[K]
27.905 X[M]=X[J]+SN1*SIN(A)*T,X[N]=X[K]+SN1*SIN(A)*T
27.906 Y[M]=Y[J]+SN*COS(A)*T,Y[N]=Y[K]+SN*COS(A)*T
27.91 DO STEP 57.4 FOR N=M,L
27.92 DO PART 30.45 FOR J=M FOR K=L FOR AZ=AA
28.1 TYPE #,#,#,#,"PROBLEM FINISHED"
28.2 LINE FOR LL=1:1:15
28.4 DONE
29.1 TYPE "GIRDER/LENGTHS"
29.2 READ J,K,L,M,N
29.25 NA=N,JA=J,KA=K
29.26 DO PART 96
29.3 DO STEP 23.3,STEP 23.4,STEP 23.5,STEP 23.6,STEP 23.8
29.4 J=M,K=NA
29.5 DO STEP 29.3
29.6 PA=JA,PB=M
29.7 DO PART 93
29.75 DO PART 87 IF $L>59 IF HEAD=1
29.8 TYPE PA,PB,DI IN FORM 22
29.9 PA=PA+1,PB=PB+1
29.95 TO STEP 29.7 IF PA<JA+L
29.96 PA=KA,PB=NA
29.97 DO STEP 29.7,STEP 29.8
30.1 TYPE "INVERSE/BEARING"
30.2 READ J,K
30.3 PA=J,PB=K
30.35 READ M IF CMD=39
30.4 DO PART 96,PART 93,PART 94
30.45 A=AZ,QQ=1
30.46 QQ=Q+1 IF A<=(Q+1)*$PI/2 AND A>Q*$PI/2 FOR Q=1,2,3
30.465 QDR=QQ
30.466 QDR=4 IF QQ=2
30.467 QDR=2 IF QQ=4
30.47 DO STEP 30.47+QDR/1000 IF QDR>1
30.471 TO STEP 30.5
30.472 A=2*$PI-A
30.473 A=A-$PI
30.474 A=$PI-A
30.5 DO PART 98
30.55 DONE IF CMD=ALN OR CMD=ARB OR CMD=TRA
30.6PRINT J,K,DI IN FORM 30
30.65PRINT"BEARING- "
30.7 TYPE DEG,MNS,SEC IN FORM  80+QDR
32.1 TYPE"PRINT/SELECTED/POINTS" FOR I=0 FOR N=0
32.2 READ N FOR I=I+1 FOR NUM[I]=N
32.3 TO STEP 32.2 IF NOT(N=Z OR N=R)
32.35 TYPE# FOR T=I-1 FOR CKL=N
32.4 DO STEP 25.4
32.5 DO PART 25.42 FOR J=NUM[I] FOR I=1:1:T
33.1 TYPE "LOCATE/ANGLE"
33.2 READ N,J,K
33.3 DO STEP 34.3
33.4 PA=J,PB=K
33.5 DO PART 94
33.6 A =AZ+A
33.7 A =AZ-2*$PI IF AZ>=2*$PI
33.8 A =AZ+2*$PI IF AZ<0
33.9 TO PART 34.4
34.1 TYPE "LOCATE/BEARING"
34.2 READ N,J
34.3 DO PART 91,PART 90,PART 96
34.4 X[N]=X[J]+D*SIN(A),Y[N]=Y[J]+D*COS(A)
34.45 DONE IF CMD=ALN OR CMD=LTA OR CMD=TRA
34.5 TO STEP 57.4
36.1 TYPE "LOCATE/DEFLECTION"
36.2 DO STEP 33.2,STEP 34.3
36.3 A=A+$PI
36.4 TO PART 33.4
37.1 TYPE "LOCATE/LINE"
37.2 DO STEP 33.2,PART 91,PART 96,STEP 22.3,PART 93
37.3 DI=D/DI,Y[N]=Y[J]+(Y[K]-Y[J])*DI,X[N]=X[J]+(X[K]-X[J])*DI
37.4 TO STEP 57.4
38.1 TYPE "OFFSET/ALIGN"
38.2 READ NUM,N,J
38.3 NA=N,N=J,JA=J
38.4 TO STEP 56.3
39.1 TYPE"BEARING/STORE"
39.2 DO PART 30.2
39.25 BR[M]=AZ
39.3 TYPE M IN FORM 39
42.1 TYPE "LOCATE/PARALLEL"
42.2 READ M,N,J,K
42.3 DO PART 91,PART 96
42.4 A=$PI*0.5 IF D>=0
42.5 A=-$PI*0.5 IF D<0
42.6 NF=N,KA=K,N=M,D='D'
42.7 DO PART 33.4
42.8 K=J,J=KA,N=NF
42.9 DO PART 34.4
44.1 TYPE "POINTS/INTERSECT"
44.2 READ N,J,K,L,M
44.25 DO PART 96
44.26 BBB=2
44.3 TO STEP 44.6 IF (X[J]=X[K] OR X[L]=X[M] OR Y[J]=Y[K] OR Y[L]=Y[M])
44.32 PA=J,PB=K
44.34 DO PART 92
44.36 TA=T,UA=U,PA=L,PB=M
44.38 DO PART 92
44.40 TO STEP 44.98 IF TA=T
44.42 Y[N]=(UA*T-U*TA)/(T-TA),X[N]=(Y[N]-UA)/TA
44.43 BBB=2
44.44 DONE IF CMD=ALN OR CMD=LTA
44.46 TYPE J,K,L,M,N,Y[N],X[N] IN FORM 44
44.47 DONE
44.6 BBB=1,X[N]=X[J],Y[N]=Y[L] IF X[J]=X[K] AND Y[L]=Y[M]
44.62 BBB=1,X[N]=X[L],Y[N]=Y[J] IF X[L]=X[M] AND Y[J]=Y[K]
44.64 TO STEP 44.43 IF BBB=1
44.68 DO PART 92 FOR PA=J FOR PB=K IF Y[L]=Y[M] OR X[L]=X[M]
44.70 Y[N]=Y[L],X[N]=(Y[L]-U)/T IF Y[L]=Y[M]
44.72 Y[N]=T*X[L]+U,X[N]=X[L] IF X[L]=X[M]
44.74 DO PART 92 FOR PA=L FOR PB=M IF Y[J]=Y[K] OR X[J]=X[K]
44.76 Y[N]=Y[J],X[N]=(Y[J]-U)/T IF Y[J]=Y[K]
44.78 Y[N]=T*X[J]+U,X[N]=X[J] IF X[J]=X[K]
44.8 TO STEP 44.43
44.98 TYPE "LINES ARE PARALLEL"
45.1 TYPE "REDEFINE"
45.2 READ N,J
45.3 DO PART 96
45.4 Y[N]=Y[J],X[N]=X[J]
45.5 TO PART 57.4
46.1 TYPE "RT/TRI/HYP"
46.2 READ F
46.3 DO PART 91.2 FOR D=F
46.4 F=D
46.5 READ G
46.6 DO PART 91.2 FOR D=G
46.65 DO PART 96
46.7 TYPE SQRT(F^2+D^2) IN FORM 46
47.1 TYPE "RT/TRI/LEG"
47.2 READ H
47.3 DO PART 91.2 FOR D=H
47.4 H=D
47.5 DO STEP 46.5,STEP 46.6
47.55 DO PART 96
47.6 TYPE SQRT(H^2-D^2) IN FORM 47
48.1 TYPE "SEGMENT"
48.2 READ J,K,RAD
48.3 D=RAD
48.32 DO PART 91.2,PART 96
48.34 PA=J,PB=K
48.35 DO PART 93
48.36 TYPE "DIST. FROM J TO K > DIAMETER" IF DI>2*RAD
48.38 STOP IF DI>2*RAD
48.5 B=SQRT(D^2-DI^2/4),A=ATN(DI/2,B),L=D*A*2, ART=A*D^2-B*DI/2
48.6 TYPE DI,L IN FORM 48
48.7 TYPE "AREA OF SEGMENT"
48.8 DO STEP 9.85,STEP 9.9
49.1 TYPE "SEGMENT/MINUS"
49.2 DO PART 48.2
49.3 ARE=ARE-ART,ART=ARE
49.4 TYPE #,"CUMULATIVE AREA"
49.5 TO STEP 48.8
50.1 TYPE "SEGMENT/PLUS"
50.2 DO PART 48.2
50.3 ARE=ARE+ART,ART=ARE
50.4 TO STEP 49.4
55.1 TYPE"TRAVERSE/CLOSURE"FOR I=1 FOR PERIM=0 FOR NN=0
55.101 X[249]=0,Y[249]=0
55.11 READ K 
55.12 READ D[I]
55.13 TO STEP 55.19 IF D[I]=Z OR D[I]=R
55.14 DO PART 90.02 FOR PERIM=PERIM+D[I]
55.145 READ N[I]
55.15 AZ[I]=A ,I=I+1
55.16 TO STEP 55.12
55.19 DO PART 87 IF HEAD=1
55.2 TYPE #,#,FORM 86 FOR CKL=D[I]
55.21 DO PART 55.8 FOR I=1:1:S FOR S=I-1 FOR N[0]=K
55.25 TYPE#,#
55.3 LAT=LAT+LAT[I],DEP=DEP+DEP[I] FOR I=1:1:S FOR LAT=0 FOR DEP=0
55.31 ERROR=SQRT(LAT^2+DEP^2)
55.32 TYPE ERROR IN FORM 70
55.37 TYPE# FOR PRCS=PERIM/ERROR
55.38 TYPE PRCS IN FORM 71
55.391 TYPE #,#,"COORDINATES",#,FORM 73
55.392 DO PART 55.7 FOR I=1:1:S FOR J=K
55.393 DO STEP 55.7
55.4 SUMLAT=SUMLAT+'LAT[I]' FOR I=1:1:S FOR SUMLAT=0
55.405TYPE#,#,"WITH ERROR DISTRIBUTED:",#,FORM 86
55.41SUMDEP=SUMDEP+'DEP[I]' FOR I=1:1:S FOR SUMDEP=0
55.42 DO PART 55.9 FOR I=1:1:S
55.43 DO STEP 55.391,STEP 55.392,STEP 55.393
55.6 DONE
55.7 TYPE J,Y[J],X[J] IN FORM 72
55.71X[N[I]]=X[J]+DEP[I],Y[N[I]]=Y[J]+LAT[I],J=N[I]
55.79 DONE
55.8 DO PART 34.4 FOR A=AZ[I] FOR N=0 FOR D=D[I] FOR J=249
55.81LAT[I]=Y[0],DEP[I]=X[0]
55.82 DO PART 30.45 FOR AZ=AZ[I]
55.83 PRINT N[I-1],N[I],D[I],LAT[I],DEP[I] IN FORM 85
55.84 TYPE DEG,MNS,SEC IN FORM 80+QDR
55.85 DONE
55.91LAT[I]=LAT[I]-LAT*'LAT[I]/SUMLAT'
55.915 DEP[I]=DEP[I]-DEP*'DEP[I]/SUMDEP'
55.92 D[I]=SQRT(LAT[I]^2+DEP[I]^2),AZ[I]=ATN(DEP[I],LAT[I])
55.93 AZ[I]=2*$PI+AZ[I] IF AZ[I]<0
55.94 DO PART 55.82
56.1 TYPE "STATION/ALIGN"
56.2 READ NUM,N
56.3 DO PART 96
56.4 PA=VC[NUM],PB=VTC[NUM],L=VCT[NUM]
56.45 DO PART 93
56.5 DO PART 94,STEP 4.5,PART 94,STEP 4.7,STEP 4.8
56.6 DEA=A,PB=VTC[NUM],L=N,RAD=DI
56.61 DO STEP 56.5
56.62 DEA=2*$PI-DEA,A=2*$PI-A IF DIR[NUM]<0
56.63 DO PART 93
56.64 TO STEP 56.7 IF A<=DEA
56.65 TO STEP 56.8 IF A>1.5*$PI
56.66 A=A-DEA,B=RAD*SIN(A)/COS(A),DA=RAD/COS(A),CHB=WCT[NUM]+B
56.67 TO STEP 56.9 IF 'DI-DA'<.003 AND CMD=STA
56.675 TO STEP 56.92 IF CMD=STA
56.68 DB=DI-DA,BB=DB*SIN(A),DC=DB*COS(A)*-DIR[NUM],CHB=CHB+BB
56.69 J=VCT[NUM],K=VI[NUM],N=NA,D=-B-BB,PA=J,PB=K
56.695 TO STEP 56.75
56.70 CHB=WTC[NUM]+RAD*A
56.71 TO STEP 56.9 IF 'DI-RAD'<.003 AND CMD=STA
56.73 TO STEP 56.92 IF CMD=STA
56.74 J=N,K=VC[NUM],N=NA,D=DI-RAD,DC=D,PA=J,PB=K
56.75 DO STEP 56.9,PART 93, PART 37.3
56.76 TO STEP 56.91
56.80 A=2*$PI-A,B=RAD*SIN(A)/COS(A),DA=RAD/COS(A),CHB=WTC[NUM]-B
56.81 TO STEP 56.9 IF 'DI-DA'<.003 AND CMD=STA
56.82 TO STEP 56.92 IF CMD=STA
56.83 DB=DI-DA,BB=DB*SIN(A),DC=-DB*COS(A)*DIR[NUM],CHB=CHB-BB
56.84 J=VTC[NUM],K=VI[NUM],N=NA,D=-B-BB,PA=J,PB=K
56.85 TO STEP 56.75
56.90 TYPE N,CHB IN FORM 8
56.905 DONE
56.91 TYPE N,JA,DC IN FORM 56
56.915 DONE
56.92 TYPE"PT NOT ON SECTION,USE OFFSET/ALIGN COMMAND"
57.1 TYPE"STORE" 
57.11READ N
57.12 TO STEP 57.3 IF N=Z OR N=R
57.13 READ N[N],E[N]
57.14 DELETE N[N],E[N] FOR Y[N]=N[N] FOR X[N]=E[N]
57.15 LINE
57.16 TO STEP 57.11
57.3 CKL=N
57.4 TYPE N,Y[N],X[N] IN FORM 57 IF CMD<>STR
58.1 TYPE "LOCATE/TACHEO"
58.15 TO STEP 58.3 IF CKL=R
58.2  READ J,HI,K
58.3 READ N,SR[1],SR[2],SR[3]
58.4 TYPE "HORIZONTAL ANGLE"
58.5 DO PART 90
58.52 HA=A
58.54 TYPE "VERTICAL ANGLE"
58.55 READ DEG
58.56 A=0 IF DEG = HOR
58.57 TO STEP 58.6 IF DEG=HOR
58.58 READ MNS,SEC
58.59 DO PART 97
58.60 DO PART 96
58.62 RU=MAX(SR[1],SR[2],SR[3]),RL=MIN(SR[1],SR[2],SR[3])
58.63 SR[I]=0 IF (SR[I]=RU OR SR[I]=RL) FOR I=1,2,3
58.64 RM=MAX(SR[1],SR[2],SR[3])
58.645 TO STEP 58.7 IF '(RU+RL-2*RM)/(RU-RL)'>0.02
58.65 VA=A,A=HA,D=100*(RU-RL)*(COS(VA))^2
58.66 E=HI-RM+50*(RU-RL)*SIN(2*VA)
58.67 DO PART 33.4
58.68 TYPE N,Y[N],X[N] IN FORM 58
58.685 TYPE J,N,D,N,E IN FORM 59
58.69 DONE
58.7TYPE "ERROR,MID-STADIA READING NOT MID WAY BETWEEN UPPER + LOWER"
58.71 TYPE "TYPE   CON   TO CONTINUE WITH THIS DATA, TYPE   REP  TO"
58.72 TYPE "REPEAT COMMAND FROM START"
58.725 CON=1234, REP=4321
58.73 READ ANS
58.74 TO STEP 58.65 IF ANS=CON
58.745 DO STEP 99.12
58.75 TO STEP 58.2 IF ANS=REP
87.1 PAGE
87.2 LINE FOR LLL=1,2,3
87.3 TYPE MTH,DAY,YR,PG IN FORM 87
87.4 DO STEP 1.01
87.5 LINE FOR LLL=1,2
87.6 PG=PG+1
88.1 MTH=IP($DTE/10000),DAY=IP(($DTE-10000*MTH)/100)
88.2 YR=IP($DTE-10000*MTH-100*DAY)
90.01TO STEP 90.1 IF NOT(CMD=34 OR CMD=12 OR CMD=7)
90.015 NN=N
90.02 READ NS FOR N=-1 FOR S=-2
90.021 TO STEP 90.95 IF NS>0
90.03 DO PART 90.1 FOR NS='NS' FOR N=1 FOR S=2
90.04 READ EW FOR E=2 FOR W=1
90.05 Q=NS+EW
90.06 A=$PI-A IF Q=4
90.07 A=$PI+A IF Q=3 AND NS=S
90.08 A=2*$PI-A IF Q=2
90.085 N=NN
90.09 DONE
90.1 READ DEG
90.2 TO STEP 90.6 IF 'DEG'=ANG
90.24 TO STEP 90.3 IF NOT(CMD=34 OR CMD=12 OR CMD=7 OR CMD=55)
90.25TYPE"BEARING MUST BE LESS THAN 90 DEGREES"IF DEG>90 
90.26 TO STEP 90.1 IF DEG>90
90.3 READ MNS,SEC
90.4 DO PART 97
90.5 DONE
90.6 READ M
90.7 A=AN[M] IF DEG=ANG
90.8 A=-AN[M] IF DEG=-ANG
90.85 DONE
90.95 A=BR[NS],N=NN
90.96 DONE
91.1 READ D
91.2 DONE IF 'D'<>DIS
91.3 READ P,Q
91.4 PA=P,PB=Q
91.5 DO PART 93
91.6 D=DI IF D=DIS
91.7 D=-DI IF D=-DIS
92.1 T=(Y[PB]-Y[PA])/(X[PB]-X[PA]), U=Y[PB]-(X[PB]*T)
93.1 DI=SQRT((Y[PA]-Y[PB])^2+(X[PA]-X[PB])^2)
94.1 AZ=ATN((X[PB]-X[PA]),(Y[PB]-Y[PA]))
94.2 AZ=2*$PI+AZ IF AZ<0
96.1 READ CKL
96.15 TYPE #
96.2 DONE IF CKL=Z OR CKL=R
96.3 TYPE "NUMBER OF VALUES GIVEN IN DATA IS WRONG IN THIS COMMAND"
96.4 TYPE "TYPE DO PART 99.1 AND REPEAT COMMAND"
96.5 STOP
97.1 A=(DEG+MNS/60+SEC/3600)/(180/$PI) IF DEG>=0
97.2 A=-('DEG'+MNS/60+SEC/3600)/(180/$PI) IF DEG<0
98.1 A=A*180/$PI
98.2 DEG=IP(A),MN=FP(A)*60,MNS=IP(MN),SEC=FP(MN)*60
98.3 SEC=IP(SEC)+1 IF FP(SEC)>=.9499
98.4 DONE IF SEC<60
98.5 SEC=0,MNS=MNS+1
98.6 DONE IF MNS<60
98.7 MNS=0,DEG=DEG+1
99.00001TYPE"$COGO ENTERED -- STAND BY",#,#
99.001 Z=99999,R=99998,DIS=99997,ANG=99996,UN=0,RT=1,LT=-1,PTA=11
99.002 ALN=3,ANL=4,AST=5,AAI=6,ALB=7,ALP=8,AR=9,ARB=10,BIN=12,COF=16
99.003 STA=56,CT=18,DCV=20,DST=22,DLN=23,DAL=24,PTC=25,ET=27,END=28
99.004 GDL=29,IBR=30,LAN=33,LBR=34,LDF=36,LLN=37,LPL=42,OAL=38,PIN=44
99.006 RDF=45,RTH=46,RTL=47,SEG=48,SMI=49,SPL=50,CAL=17,STR=57,COM=1
99.007 CLR=2,OAN=13,OAE=14,LTA=58,HOR=333333,TRA=55,PSP=32,BRS=39
99.01 NL[J]=10 FOR J=22,29,30,45,56
99.011 NL[J]=11 FOR J=4,23,25,57,24,32
99.012 NL[J]=13 FOR J=5,17,38,11,39
99.013 NL[J]=14 FOR J=44,37,46,47,16,13,14
99.014 NL[J]=16 FOR J=8,34,42
99.015 NL[J]=17 FOR J=6,12,33,36
99.016 NL[J]=18 FOR J=7,49,50
99.017 NL[9]=5,NL[10]=5,NL[48]=15,NL[3]=36,NL[27]=21,NL[18]=21
99.018 NL[1]=9,NL[2]=11,NL[20]=18,NL[28]=9,NL[58]=27,NL[55]=35
99.019 AD[I]=0,X[I]=10^15 FOR I=0:1:249
99.02 O=1,YES=1,PG=1,CUR=0,NO=0
99.025 TYPE"DO YOU WISH HEADINGS AT THE TOP OF EACH PAGE?"
99.026 READ ANS
99.0265 TYPE #,#,# IF HEAD=0 FOR HEAD=ANS
99.027 TO STEP 99.1 IF HEAD=0 
99.03 TYPE "LOAD TITLE/COMMENTS TAPE,OR IF NO COMMENTS TYPE:",#
99.035 TYPE "1.01 TYPE (THEN PLACE JOB TITLE WITHIN QUOTES)"
99.036TYPE#,"THEN PAGE, SET PAPER TO TOP OF PAGE, AND TYPE 'GO'."
99.04 STOP
99.041 PAGE
99.042 LINE FOR LL=1:1:20
99.045TYPE"                            $ C O G O"
99.046TYPE"                           ===========",#,#
99.05 DO PART 88,STEP 1.01,PART 87
99.1 READ CMD
99.12 DO PART 87 IF NL[CMD]>62-$L IF HEAD=1
99.13PRINT O IN FORM 99 IF HEAD=1
99.14 TO STEP 99.24 IF CMD=1
99.16 DO PART CMD
99.17 DONE IF CMD=END
99.18 O=O+1
99.2 LINE FOR LLL=1,2,3
99.22 TO STEP 99.12 IF CKL=R
99.23 TO STEP 99.1
99.24 READ CN
99.26 DO PART 96,STEP CN,STEP 99.2
99.27 O=O+1
99.275 TO STEP 99.1 IF CKL=Z
99.28 TO STEP 99.12
FORM       2
POINTS ### TO ### HAVE BEEN CLEARED
FORM       3
CURVE IDENTIFICATION NO. = ###
FORM       4
CLOCKWISE ANGLE AT ###,FROM PT ### TO PT ### IS ### DEG ## MIN ##.# SEC
FORM       5
STORED AS ANGLE NO. ###
FORM       6
RAD=######.###,TAN.LENGTH=######.###,DEFL.ANGLE=### DEG ## MIN ##.# SEC
FORM       7
XX (DIST. FROM PT ### TO PT ###)=######.###, CURVE LENGTH=######.###
FORM       8
STATION OF POINT ### IS ######.###
FORM       9
AREA=########### SQ FT, OR #########.# SQ YD, OR #######.### ACRES
FORM      10
 ###    ### ######.###    
FORM      17
######.###   ######.###  ###DEG ##MIN ##.#SEC
FORM      22
DISTANCE FROM POINT ### TO POINT ### =######.###
FORM      23
ERROR, K(###) MINUS J(###) = ###,YET YOU HAVE SPECIFIED ###EQUAL PARTS
FORM      25
 ###      ######.###  ######.###
FORM      30
DIST-PT ### TO PT ### =######.###, 
FORM      34
EQUAL DISTANCE BETWEEN POINTS =######.###
FORM      39
STORED AS BEARING NUMBER ###
FORM      44
LINE###,### INTERSECTS LINE###,### AT PT###,N=-######.### E=-######.###
FORM      46
LENGTH OF HYPOTENUSE =######.###
FORM      47
LENGTH OF LEG =######.###
FORM      48
CHORD LENGTH =#######.###, ARC LENGTH =######.###
FORM      56
OFFSET DISTANCE FROM PT ### TO PT ### IS ######.###
FORM      57
CO-ORDS OF POINT ### ARE  N=-######.###, E=-######.###
FORM      58
CO-ORDS OF PT ### ARE  N=-######.###  E=-######.###
FORM      59
DISTANCE FROM PT### TO PT### =-######.# ELEVATION OF PT ### = ######.##
FORM      70
THE ERROR OF CLOSURE IS ###.#####
FORM      71
PRECISION IS ONE PART IN  #############
FORM      72
###    -######.###     -######.###
FORM      73
PT.NO.     NORTH           EAST
FORM      81
N ##: ##: ##.# E
FORM      82
N ##: ##: ##.# W
FORM      83
S ##: ##: ##.# W
FORM      84
S ##: ##: ##.# E
FORM      85
###,###   ######.###  -######.###  -######.###   
FORM      86
  SIDE     DISTANCE     LATITUDE    DEPARTURE      BEARING
FORM      87
$COGO   DATE ##/##/##   PAGE NO. ##
FORM      89
       ## HOURS ## MINS ## SEC
FORM      97
 ### #########
FORM      98
 ###           ###    ##     ##.#
FORM      99
COMMAND### - 
FORM   99999
$COGO LOADED...START BY TYPING "DO PART 99"
TYPE FORM 99999
DUMPED
                                                                                                                                                                                                                     